(計実) 第5回 シェル(2)とPython(2)
◆0.はじめに
◎出席: 今日のrespon:締切は15時
https://gyazo.com/7fc13a88fc054e2eb29cb17caf331ed4
1. 教室番号/参加場所:対面はPC番号/OLは参加場所
2. キーワード:冒頭に伝える
3. 前回の内容の自己評価:成績とは無関係
◎今回の内容
第4回で学んだシェルの応用と前回から始めたPythonプログラミングの続きです.
その前に,いままでの学習内容を振り返ってみましょう.
■1. 第1回~第4回
本科目「計算機実習1」では,Unixというオペレーティングシステムを使い,ターミナルを使ったコマンド入力について学んできました.
情報基礎同様,コマンドの使い方だけではなく,ファイルやディレクトリを操作することで,OSの根幹であるファイルシステムや標準入出力などについて理解することが重要な目的です.※実習中に細かい説明はせず,自学に任せています.
オプション付きのコマンドとリダイレクションやパイプなどを駆使すれば,コマンドを組み合わせて複雑な処理も可能だという話も出てきました.
■2. 第4回後半以降
第4回から第6回まで "Python"( パイソン )というプログラミング言語を使って,プログラミングの基礎の基礎を学習しています.
しかし,たった3回の授業では多くを伝えることは困難です.本実習ではプログラミングを深堀りせず,今後のカリキュラムのベースとなるような重要項目をザッピング (zapping) します.
PythonもUnixも,後期セメスターの計算機実習2をはじめ,今後の情報系・プログラミング系の授業につながっています.情報系の科目では今後,以下のような項目について考え,学んでいくことになります.
a. コンピュータ (メモリ) の中でデータはどうやって表現され,蓄積され,利用されるか
b. プログラムの手順はどのように記述され,実行されるのか
c. より効率のよいプログラムはどう書けばよいのか
ここでの学習は,そのごくごく端緒です.「この単位が取れたら終わり」ではなく以降のカリキュラムに,3年次以降の研究活動に,ひいては将来につなげるつもりで,本質を見極めつつ,楽しんで学習を進めてほしいと思います.
← ★じつはカリキュラムはすべて,そう願って作られ準備されています.
■3. 第7回:実技テスト
第7回は実技テストです.
テスト範囲は,第4回までの学習内容です.※ただしPythonは除く
実技テストの準備については今回説明します.
◎今回の注意
■1.課題への取り組み方(その2)
前回も注意しましたが今回も注意です.課題文をよく読み,どう回答すれば質問にちゃんと答えているかをよく考えてから回答を書くべきです.
例えば,Unixのコマンドを複数つなげた「1行コマンド」は,たった1行ですが,実行する処理はコマンド毎に把握しておく必要があります.それを説明するのだから,当然説明文は長くなります.
なので,その長い説明をどう書けば,より伝わりやすいかを考えながら書く必要があります.
その第一歩は,まず課題文をしっかり理解するところからです.
■2. ユーザディレクトリの場所 ( Windowsの場合 )
WindowsでダウンロードしたファイルをUbuntuにコピーする際「ユーザディレクトリはどこ?」と迷うことがあります.以下を参照.
■3. 未消化の内容・課題
今までで未消化の部分がある人は,なんとか追いつく努力をしてください.
他の人も,教科書,授業サイト,参照文献を見直し,Unixのコマンド操作を何度も復習して下さい.
スキルも知識も, 一度通り過ぎただけでは蒸発します.蒸発を食い止めるのは繰り返ししかありません.
※昨日の自分は半分他人,明日の自分はもっと他人
code:第5回 目次
0.はじめに
1.実技テストの準備
2.シェルの便利な機能
3.変数,代入と型
4.演算と演算子
5.条件分岐:if~elif~else
6.標準出力:print()関数
<(計実) 第5回課題>
では,本日も楽しく始めましょう.
◆1.実技テストの概要と準備
第7回に行う実技テストは,いままで学習したunixの基礎的なコマンド操作に関するテストである.※プログラミングは含まれない
1. まず,以下にテストの形式や実行概要をまとめたのでよく読むこと.
2. 次に,自PC・ネットワークの点検についてまとめた.いままで正常に実習を受けていれば問題ないと思うが,念のため確認しておくこと.
3. さらに,テストまでにやっておくと必ずテストが楽になる事前準備を紹介する.
4. 今回から「質問チャネル」に「テストについての質問スレッド」を立てる.テストの準備・復習に関する質問はそちらに書き込むこと.
※当然だが,テスト開始後は緊急事態以外は書き込んでも返事はしない.
さて,次節からは今日の本題,シェルとプログラミングです.
◆2.シェルの便利な機能
シェルには,ただコマンドをカーネルにわたすだけではなく,ユーザの利便性を考慮した機能が数多くある. 第3回で紹介した履歴 (history) 機能はその一つである.
ここでは「これを利用すれば格段に作業効率がよくなるだろう」機能を紹介しよう.
上の記事を読み,実際に入力・操作してみて機能を試してみよう.
※実技テストには出ないが,実際に作業する上でべんりだと思えばどんどん使うべし.
さて,次節からは前回から始まったPythonプログラミングの続きだ.
◆3.変数,代入と型
まずは,基礎の基礎として,変数,代入,型について学ぶ.
上の記事を読み,実際に入力して確認しなさい.
※注意※
記事の中でファィルを作成する場合は,Unixエディタを使いなさい.
ファイル名は記事の通りで構わない.( 提出はなし )
実行コマンドは"python3"なので注意
"python"だと別バージョンが起動するか,コマンドないと言われる
例:プログラムがsample1-1.pyならば,以下のようにする.
$ python3 sample1-1.py▼
代入演算子 "=" (イコール1個) は,比較演算子の"==" (イコール2個) と 混同しやすいので注意!
★型変換まとめ(1): int() → 整数に.float() → 浮動小数点に.str() → 文字列に
★型変換まとめ(2): input() の返り値は文字列型 → 数値演算には int() / float() / eval()
※当然だが文字列利用なら input() に eval() を使う必要はない
◆4.演算と演算子
つぎに,四則演算等の算術演算について紹介する.
Pythonは他の言語同様,標準で基本的な算術演算( 四則演算等 )が可能である.
上の記事の「1.演算」を読み,実際に入力して確認しなさい( 対話モード ) .
ポイント:べき乗は"**",剰余は"%"
以下に算術演算子のまとめを示しておく ( 下記 Python入門-@IT より ) .
https://gyazo.com/58c214fc26325537424ec4b690d63788
Pythonにはこの他にも,演算子がたくさんある.
→ 比較演算子,論理演算子,代入演算子,三項演算子等
ここでは詳細にはやらないが,以下に参考サイトを紹介しておく.
この中で次節以降に登場するのは,「比較演算子」「論理演算子」.
次節の if文の条件式で使う.
◆5.条件分岐: if~elif~else
プログラムにとって重要な「分岐」機能を紹介する.
別途教材としてノートを作成した.
上の記事をよく読み,実際に入力して確認しなさい.
※Pythonはブロックをインデントで表すのが,他言語から見ると特殊.
◆6.標準出力:print()関数
最後に,非常によく使う出力の関数,print()を紹介する.
※入力の関数 input() は,第4回-1節[3]型変換 ですでに触れている.
print()関数は,コンソールにテキストを出力する関数で,最も多用する関数だと言ってもよいだろう.
また,プログラム途中の変数の値をチェックするなど,簡単なデバッグにもよく使われる(printデバッグとか呼ばれる).
以下の記事を読み,実際に入力して確認しなさい (対話モードでよい) .
★printまとめ: printは通常最後に改行するが,改行なしやカンマ区切りなども可能.
※思い通りの書式に整形して出力するフォーマット指定も可能
※printとは別に,変数の型を超えて表示できる「formatメソッド」もある
以上.
2023/7/4 by Kobori Satoshi, Fujii Daisuke
[理系なら知っておくべき美しい数式05]
$ e = \lim_{k\rightarrow 0}(1+k)^{\frac{1}{k}},\; \frac{d}{dx}a^x=a^xなるa,\; e=\sum_{n=0}^\infty\frac{1}{n!}